Panorama general de la reutilización de Software

Introducción

La reutilización de software consiste en producir software como si se tratara de componentes eléctricos, para posteriormente utilizarlos sin tener que rediseñarlos de nuevo.

Los objetivos de la reutilización del software son:

Enfoques de la reutilización:

Reutilización ocasional Aprovecha los recursos disponibles cuando son necesarios (pensando en el ahora).
Reuse driven develpment Desarrollo orientado a la reutilización: Los elementos se diseñan e implementan pensando en su reutilización a largo plazo (pensando en el futuro).

 

Ciclo del desarrollo orientado a la reutilización (Reuse Driven Development):

  1. Establecer los requisitos del sistema.

  2. Buscar componentes reutilizables.

  3. Adaptar los requisitos a los componentes.

  4. Diseñar los componentes que faltan con vistas a su reutilización.

  5. Desarrollar los módulos de interconexión de componentes.

  6. Implementar el sistema.

 

Panorama general de metodologías de reutilización

 

Tecnicas_de_reutilizacion

 

Código no accesible

Librerías

Son un conjunto de funciones reutilizables que disponen de una interface bien definida para su funcionalidad.

Una librería no está diseñada para ser utilizada de forma independiente.

 

Componentes

Un componente es un fragmento reemplazable de un sistema que encapsula su funcionalidad y la ofrecen al exterior a través de una interface.

Son unidades de software independientes que se combinan con otras para crear un sistema.

Cualquier componente tiene en general dos interfaces relacionadas:

Componente

 

Código accesible

Clases y objetos

Permiten reutilizar diseños anteriores, las clases que otros han desarrollado y modificar el código para adaptarlo a nuestras necesidades.

Conceptos de la POO que favorecen la reutilización:

 

Patrones de diseño

Un patrón de diseño es una solución a un problema que se ha presentado en múltiples ocasiones y nos sirve de base para buscar soluciones a problemas de desarrollo del software.

Un patrón contiene una solución probada a un problema en un determinado contexto.

Para que una solución sea considerada patrón:

CREACIONALES
ESTRUCTURALES
COMPORTAMIENTO
Tienen que ver con el proceso de creación de objetos.
Tratan con la composición de clases u objetos para crear estructuras más complejas.
Orientados a la comunicación e interacción entre objetos y el control de flujo del proceso.
Fábrica abstracta
Constructor
Prototipo
Singleton
Adaptador
Compuesto
Fachada
Proxy
Cadena de responsabilidad
Mediador
Observador
Estado
Método plantilla

 

 

Frameworks

Los frameworks ofrecen un conjunto de clases, concretas y abstractas, así como interfaces que ayudan a la resolución de problemas frecuentes y que, además guían al desarrollador en el diseño arquitectónico del sistema.

Las principales diferencias entre los patrones de diseño y los frameworks son:

 

Patrones arquitectónicos

El diseño de la arquitectura de un sistema es una representación de su estructura general al más alto nivel.

Los diseños arquitectónicos:

 

Arquitectura J2EE (Java 2 Enterprise Edition)

J2EE es una arquitectura que facilita el desarrollo de aplicaciones completas, proporcionando independencia de la plataforma, portabilidad e interoperabilidad entre aplicaciones.

Se basa en una arquitectura compuesta por capas:

Capas_J2EE

Sus principales objetivos son:

 

Beneficios y problemas de la reutilización

Ventajas:

Inconvenientes:

 

by Jose Manuel Pinillos